Skip to main content
WebsiteGitHub last commitGitHub commit activityGitHub IssuesDocker PullsDiscordLocalized

Media Management Workflow

This document illustrates a streamlined media management workflow using the *Arr suite of applications with direct integration to Jellyfin libraries, utilizing mergerfs for storage pooling and supporting both torrent and Usenet downloads.

Complete Workflow Diagram

Workflow Components

1. Request Management

  • Jellyseerr: Web interface for users to request Movies and TV shows
  • Provides a clean, user-friendly interface for content requests
  • Integrates with Radarr and Sonarr for automated processing

2. Content Management (*Arr Suite)

  • Radarr: Handles movie requests and management
  • Sonarr: Manages TV show requests and episode tracking
  • Prowlarr: Unified indexer management with Flaresolverr for CloudFlare bypass
  • Flaresolverr: Solves CloudFlare challenges for indexer access
  • Configured to move completed downloads directly to Jellyfin libraries

3. Download Management

  • qBittorrent: Primary torrent client for downloading content
  • Usenet Client: Handles Usenet downloads (SABnzbd, NZBGet, etc.)
  • Downloads to centralized /downloads folder
  • Both torrent and Usenet sources managed through Prowlarr

4. Storage Management

  • mergerfs: Union filesystem that pools multiple drives into a single mount point
  • Provides unified storage view for Jellyfin libraries
  • Allows mixing different drive sizes and types
  • Enables easy expansion by adding new drives
  • No RAID overhead - full capacity utilization

5. Media Library Integration

  • Direct Integration: *Arr applications move content directly to Jellyfin libraries
  • Automatic Organization: Files are properly named and organized automatically
  • Jellyfin: Media server streams content from mergerfs-pooled storage
  • Immediate Availability: Content becomes available for streaming as soon as download completes

Key Benefits

  1. Streamlined Workflow: Fully automated from request to availability
  2. Dual Download Sources: Both torrent and Usenet support for maximum availability
  3. Direct Integration: No intermediate processing steps - content goes straight to libraries
  4. Flexible Storage: mergerfs allows easy expansion and mixed drive configurations
  5. User-Friendly: Jellyseerr provides easy request interface
  6. High Availability: Multiple indexers and download methods ensure content acquisition
  7. Storage Efficiency: Full drive capacity utilization without RAID overhead
  8. Fault Tolerance: Individual drive failures only affect content on that specific drive

Folder Structure

Bind Mount Consistency Required

Use the same media path mapping in every related container (Sonarr, Radarr, qBittorrent, and others). The host bind-mount path and the in-container mount path must be consistent across services, or import/move operations can fail.

/media/merged

moviesJellyfin Movies library
tvJellyfin TV Shows library
musicJellyfin Music library (if using Lidarr)
booksJellyfin Books library (if using Readarr)
downloadsDownload location
TorrentqBittorrent download location
tempTemp download location
radarr
tv-sonarr
UsenetUsenet download location
tempUsenet temp download location
cacheTdarr cache location (bind mount)
tdarr_cache

/mnt

disk1First storage drive
disk2Second storage drive
disk3Third storage drive
diskNAdditional drives as needed

mergerfs pools all /mnt/disk* into /media/merged.

mergerfs Configuration

Basic mergerfs Setup

# Install mergerfs
sudo apt install mergerfs

# Create mount points
sudo mkdir -p /mnt/disk{1,2,3} # Adjust number based on your drives
sudo mkdir -p /media/merged

# Mount individual drives (add to /etc/fstab for persistence)
UUID=your-disk1-uuid /mnt/disk1 ext4 defaults,noatime 0 2
UUID=your-disk2-uuid /mnt/disk2 ext4 defaults,noatime 0 2
UUID=your-disk3-uuid /mnt/disk3 ext4 defaults,noatime 0 2

# Mount mergerfs pool (add to /etc/fstab for persistence)
/mnt/disk1:/mnt/disk2:/mnt/disk3 /media/merged mergerfs defaults,nonempty,allow_other,use_ino,cache.files=off,moveonenospc=true,dropcacheonclose=true,minfreespace=50G,fsname=mergerfs-pool,category.create=mfs 0 0

# Use bind mounts for these directories so media doesnt get added on this drive
# Bind mount downloads from Processing drive
sudo mkdir -p /media/merged/downloads
sudo mount --bind /media/server/Processing/downloads /media/merged/downloads

# Keep Tdarr cache separate
sudo mkdir -p /media/merged/cache
sudo mount --bind /media/server/Processing/Tdarr /media/merged/cache

Docker Integration

Ensure your *Arr containers mount the mergerfs pool with specific media type paths:

# Example for Radarr
volumes:
- /media/merged/movies:/movies # mergerfs movies library

# Example for Sonarr
volumes:
- /media/merged/tv:/tv # mergerfs TV library

Additional Considerations

  • Storage Expansion: Easy to add new drives to the mergerfs pool
  • Drive Failure: Only content on failed drive is affected, rest remains accessible
  • Network Usage: Usenet typically faster than torrents, reduces bandwidth impact
  • Monitoring: Regular checks of drive health and mergerfs status
  • Backup Strategy: Important to backup configurations and consider redundancy for critical content
  • Performance: Direct file placement eliminates processing delays
  • Space Management: mergerfs policies ensure optimal space utilization across drives

Usenet Integration

  • SABnzbd: Popular, web-based Usenet client with excellent *Arr integration
  • NZBGet: Lightweight, efficient Usenet downloader
  • Both integrate seamlessly with Prowlarr for indexer management

Usenet Benefits

  • Speed: Typically faster than torrent downloads
  • Availability: Better retention for older content
  • Privacy: No uploading/seeding requirements
  • Reliability: More consistent download speeds

This streamlined workflow provides a robust, automated solution for media management with minimal manual intervention and maximum storage flexibility.

Buy me a beer

Changelog

Add bind-mount consistency warning above folder structure
Convert Arr Suite folder structure to Trees component
Fix Mermaid diagram color consistency
Final polish: fix Mermaid colors and Docker integration examples
Final cleanup: fix Mermaid classes and folder structure


💬 Discord Community Chat

Join the conversation! Comments here sync with our Discord community.

💬 Recent Comments

Loading comments...